// 1 引入
const express=require("express");
const querystring=require("querystring");
// 2创建服务器
const app=express();
// 前端写在 public 直接可以访问网页   localhost:3000/m/xx.html
app.use(express.static("./public"))
//node里面 req res所有的都是同一个 而且是对象
// 中间件是每次 页面打开 都会执行的函数 
// 不管你是什么请求 我都会获取post数据 放到req.body上面
// 无条件 执行函数里面的代码
// 要求 从这行代码开始  以后 req都有xx  值是100
// 这样的一个函数
// app.use(function(req,res,next){
//     req.xx=100;
// })
app.use(function(req,res,next){
    // req.url=把get数据放在里 ，   req.url /aaa?id=1
    // 获取提交的post数据
    // 1 写一个空字符串
    let dataStr="";
    // 2 ondata 一点一点的接收
    req.on("data",(chunk)=>{ //chunk 一点一点的数据
        dataStr+=chunk;//一点一点的拼接
    })
    // onend接收完成了
    req.on("end",()=>{
        // console.log(dataStr) //uname=jack&age=11&gender=女 nodejs自带可以转成对象的
       let obj= querystring.parse(dataStr); //{uname:jack...}
       req.body=obj;//把这个对象复制给 req.body 后面要用
       next();//下一个
    })
})
// index.html
// req.body 那post参数
// nodejs后端渲染方式  访问/    art-template去渲染一个 xx.html的模板 我们用一下 本身 前端发送ajax自己写
// 1下载 2 引入配置 3使用res.render方法
app.engine("html",require("express-art-template"));//起一个html名字 代表 template模板
app.set("view engine","html");// nodejs 要使用html名字对应的模板了
app.set("views","./moban");// 规定你的模板必须放在moban这个文件夹
// 3 监听浏览器请求 (书面语言也叫 路由) app.get
const router=require("./routers/router.js");
app.use(router);
// 4 启动服务
app.listen(3000,()=>{
    console.log("服务器启动成功")
})





// 注册用户到数据库
// 简单方式
// app.post("/insert",(req,res)=>{
//     res.send("ok")
// })
// 复杂方式